"""
在未指定primary_key的情况下,Django会默认创建一个id自增字段作为主键。\n
第一步：生成一个简单的数据库表 \n
    from django.db import models

    class Account(models.Model):
        account_name = models.CharField(max_length=20) \n
        account_id = models.IntegerField(primary_key=True) \n
        balance = models.DecimalField(max_digits=2, decimal_places=2) \n
第二步：执行命令生成到数据库 \n
   manage.py makemigrations \n
   manage.py migrate # 生成数据表 \n

上面两步执行完成后，数据库中就会生成auth_开头的相关表和django_开头的相关表，还有就是blog_account表，会默认以blog开头
其他的直接参考README.md文件

数据库字段: \n

"""
from django.db import models
from rest_framework import serializers


# 账户类
class Account(models.Model):
    # 如果为id，id不写会自动填充并作为主键
    # account_id = models.AutoField(primary_key=True) # 自动递增
    account_id = models.AutoField(primary_key=True)
    account_name = models.CharField(max_length=20)
    balance = models.CharField(max_length=20)
    create_time = models.DateTimeField(auto_now_add=True)  # auto_now_add创建了第一次时间戳之后不会再变化，均为只读状态
    update_time = models.DateTimeField(auto_now=True)  # auto_now在每次调用Model.save()时，都会强制更新

    class Meta:
        # 数据库中生成的表名称 默认 app名称 + 下划线 + 类名
        db_table = "account"


class AccountSerializer(serializers.ModelSerializer):
    """
    序列化Account表数据
    """

    create_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S")
    update_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S")

    # occurred_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S")
    # handle_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S")

    class Meta:
        model = Account
        # 需要获取的字段
        fields = (
            'account_id', 'account_name', 'balance', 'create_time', 'update_time')

# # 数据库Meta元信息
# class UserInfo(models.Model):
#     nid = models.AutoField(primary_key=True)
#     username = models.CharField(max_length=32)
#
#     class Meta:
#         # 数据库中生成的表名称 默认 app名称 + 下划线 + 类名
#         db_table = "table_name"
#         # 联合索引
#         index_together = [
#             ("pub_date", "deadline"),
#         ]
#
#         # 联合唯一索引
#         unique_together = (("driver", "restaurant"),)
#
#         # admin中显示的表名称
#         verbose_name
#
#         # verbose_name加s
#         verbose_name_plural
#
#
# # 创建一个书的类,继承models类
# class Book(models.Model):
#     # 用models类创建书的名字,类型为字符串,CharField相当于mysql语句中的varchar,字段最长为32
#     title = models.CharField(max_length=32)
#
#     # 创建书的价格,类型为浮点型,小数点前最长4位,小数点后最长2位
#     price = models.DecimalField(max_digits=6, decimal_places=2)
#
#     # 创建书的出版社信息,其与出版社的外键关系为一对多,所以用外键
#     publish = models.ForeignKey(Publish)
#
#     # 创建书的出版日期,类型为日期
#     publication_date = models.DateField()
#
#     # 创建书的类型信息,为字符串类型,最长为20
#     classification = models.CharField(max_length=20)
#
#     # 创建书的作者信息,书籍与作者的关系为多对多,所以使用many-to-many
#     authors = models.ManyToManyField("Author")
